import java.util.Scanner;

//非常的开心自己做出来，最重要的还是需要理解题的思想！！！
public class Main{
    
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int num = sc.nextInt();
            int original = sc.nextInt();
            int[] arr = new int[num];
            for(int i = 0; i < num; i++){
                arr[i] = sc.nextInt();
            }
            for(int i = 0; i < num; i++){
                if(original >= arr[i]){
                    original += arr[i];
                }else{
                    original += maxFactor(original,arr[i]);
                }
            }
            System.out.println(original); //输出最终的能力值
            
        }
        sc.close();
    }
    
    //求两个数的最大公因数函数
    
    //开始用求一个数的最大公因数思想去考虑，导致了问题发生
    //测试用例通过率为0，原因是在下面的for循环中，i初始值设为了2，i的条件设为<minNum;
    //而两个数最大公因数可能为1，还可能为最小的数本身
    public static int maxFactor(int n, int m){
        int max = 0; //记录最大公因数
        int minNum = n < m ? n : m;
        for(int i = 1; i <= minNum; i++){
            if(n % i == 0 && m % i == 0){
                if(i > max){
                    max = i;
                }
            }
        }
        return max;
    }
}
    
    